package org.bigk.invoices.services;

import java.util.List;

import org.bigk.invoices.exceptions.ServiceException;
import org.bigk.invoices.model.Invoice;
import org.bigk.invoices.model.InvoiceFilter;
import org.bigk.invoices.model.InvoicePosition;

public interface InvoicesService {

	public List<Invoice> listAllItems() throws ServiceException;

	public List<Invoice> listItems4Page(InvoiceFilter filter) throws ServiceException;

	public Invoice getInvoice(Long id) throws ServiceException;

	public Invoice prepareNewInvoice() throws ServiceException;
	
	public void saveInvoice(Invoice invoice) throws ServiceException;
	
	public void updateInvoice(Invoice invoice) throws ServiceException;
	
	public void addInvoicePosition(Invoice i, InvoicePosition ip) throws ServiceException;
	
	public void deleteInvoice(Invoice invoice) throws ServiceException;
}
